草庐IT

Java String.split 内存泄漏?

全部标签

c# - 从内存加载 Picturebox 图像?

我似乎不知道如何从内存中的位图中加载pictureBox图像。是否有可能或者我必须为位图创建临时文件? 最佳答案 内存中的图片是什么格式?如果你有一个实际的Bitmap对象,只需将它分配给PictureBox,如dtb所建议的:pictureBox.Image=bitmap;如果您将图像作为一系列字节保存在流中,则需要从流中加载图像:varimage=Image.FromStream(stream);pictureBox.Image=image;如果您有位图的WindowsGDI句柄,请使用varimage=Image.FromHb

c# - 为什么要调用 Dispose()?不会发生内存泄漏?

编辑:我的问题没有得到我正在寻找的主要答案。我不清楚。我真的很想知道两件事:不能调用Dispose()会导致内存泄漏吗?如果您有一个大型程序并且从不对任何IDisposable对象调用Dispose(),那么最糟糕的事情是什么?我的印象是,如果未对IDisposable对象调用Dispose(),可能会发生内存泄漏。根据关于此thread的讨论,我的看法是不正确的;如果未调用Dispose(),则不会发生内存泄漏。那为什么还要调用Dispose()呢?是否只是立即释放资源,而不是稍后释放资源?如果您有一个大型程序并且从不对任何IDisposable对象调用Dispose(),那么最糟糕

c# - 托管代码中是否可能发生内存泄漏? (特别是 C# 3.0)

例如,如果我有一个分层数据结构:classNode{publicListchildren;}它被填充到许多层次,然后在其中一个parent去:myNode.children.Clear();这将清除所有对直系子代的引用——但是那些直系子代引用的所有孙代、曾孙代等又如何呢?C#是否足够聪明,知道它们不再需要并且将被垃圾收集?我读过使用WPF数据绑定(bind)而不实现接口(interface)INotifyChanged会导致内存泄漏:http://blogs.msdn.com/b/micmcd/archive/2008/03/07/avoiding-a-wpf-memory-leak-

c# - 忽略 IDisposable 会导致内存泄漏吗?

在answerIwrote的评论中我们讨论了内存泄漏和IDisposable,但我们没有得出任何真正的结论。处理非托管资源的类可能会实现IDisposable。如果忽略它并且既不调用Dispose也不将对象包装在using中-这会导致非托管资源被泄漏吗?还是会在GC回收对象的时候进行适当的清理?我们可以假设处理非托管资源的类具有IDisposable的正确实现,包括终结器等。 最佳答案 它不会导致内存泄漏。事实上,Dispose与内存管理完全无关。它将造成资源泄漏。虽然GC通常会清理它,但这可能太少也太晚了。省略Dispose(us

c# - 如何检测内存泄漏在哪里?

我有一个大型网站,似乎正在占用所有分配的内存。服务器上除此站点外没有其他任何内容。一周之内,它会耗尽2个演出并需要重新启动。目前这是使用IIS7的服务器200832位。我们正在重新安装以使用64位并添加更多内存。如果能够追踪泄漏发生的位置,那就太好了。那么跟踪内存泄漏的最佳实践是什么? 最佳答案 内存泄漏在.NET中并不常见,但当它们发生时,最常见的原因是未附加的事件处理程序。确保在监听器超出范围之前分离处理程序。另一种选择是,如果您忘记在IDisposable资源上调用Dispose()。这可能会阻止清理非托管资源(不由GC处理)

c# - 如何将内存流下载到文件?

我正在使用下面的示例代码在C#中写入内存流并将其下载到文件中。MemoryStreammemoryStream=newMemoryStream();TextWritertextWriter=newStreamWriter(memoryStream);textWriter.WriteLine("Something");byte[]bytesInStream=newbyte[memoryStream.Length];memoryStream.Write(bytesInStream,0,bytesInStream.Length);memoryStream.Close();Response.C

c# - 如果字符串为 null 或空,为什么 string.Split (";") 不会抛出错误?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。如果字符串为空或null,string.split(";")不应该抛出错误吗?对我来说,我正在尝试这段代码并且没有任何错误,stringa=string.empty;if(a.Split(';').Length-1谁能告诉我为什么它不抛出错误以及为什么if语句为真。

c# - ConcurrentBag<T> 实现中是否存在内存泄漏?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:PossiblememoryleakinConcurrentBag?编辑1:真正的问题是。你能证实这一点吗?还是我的样本有误,我遗漏了一些明显的东西?我认为ConcurrentBag是无序列表的简单替代品。但是我错了。ConcurrentBag确实将自己作为ThreadLocal添加到创建线程,这基本上会导致内存泄漏。classProgram{staticvoidMain(string[]args){varstart=GC.GetTotalMemory(true);newProgram().Start(arg

c# - 奇怪的 handle 泄漏

我的应用程序(基本应用程序是与C++/CLI互操作的MFC,但它还包含大量C#、Windows窗体、WPF)有句柄泄漏。应用程序启动后不久,我可以看到任务管理器中的句柄数持续增长(以每秒10个新句柄的速度)。所以我用了handles.exe看看它们是什么类型的句柄。我发现泄漏的句柄是进程句柄。它们是我的应用程序进程的进程句柄。所以我想知道哪些操作通常会为其运行的进程创建句柄。有什么想法吗?你见过这样的事吗?考虑到我不能使用调试DLL并且我只能使用可以xcopy部署的工具,我还能做些什么来追踪泄漏。更新:我能够向它抛出windbg和!handle,!htrace并发现进程句柄都是使用以下

C# 基于事件的内存泄漏

我有一个应用程序,由于在对象引用设置为null之前未分离事件而导致一些内存泄漏。应用程序很大,很难通过查看代码找到内存泄漏。我想使用sos.dll查找作为泄漏源的方法的名称,但我被卡住了。我建立了一个测试项目来演示这个问题。这里我有2个类,一个有一个事件,并且如下所示监听该事件namespaceMemoryLeak{classProgram{staticvoidMain(string[]args){TestMemoryLeaktestMemoryLeak=newTestMemoryLeak();while(!Console.ReadKey().Key.Equals('q')){}}}c